// pages/index/homePage/homePage.js
// 首页-逻辑层



// 请求数据时，每一段数据都需要logding加载框。
// 一段一段的



// 引入公共方法(utils.js)
import util from '../../../utils/util'

Page({


  /**
   * 页面的初始数据
   */
  data:
  {


    //++++++++++++++ 排队顾客数据 ++++++++++++

    realTime: null,//实时数据对象(用于关闭实时刷新方法)

    customer: [//排队顾客数据
      // {
      //   headImage: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3401732207,3726302783&fm=26&gp=0.jpg'//当前下单顾客微信头像
      // },
      // {
      //   headImage: 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=2775801273,2711112264&fm=26&gp=0.jpg'
      // },
      // {
      //   headImage: 'https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3222454269,3484359568&fm=26&gp=0.jpg'
      // },
      // {
      //   headImage: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2180936608,1480355193&fm=26&gp=0.jpg'
      // },
      // {
      //   headImage: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3401732207,3726302783&fm=26&gp=0.jpg'//当前下单顾客微信头像
      // },

    ],
    

    //++++++++++++++++++ END ++++++++++++++++










    //+++++++++++++ 用户自定义配置字段 +++++++++++++

    /**
     * 用户可以在后台管理系统中设置以下所有字段
     * 个性化定制
     */
    userConfig:
    {
      noticeText: '尊敬的客户您好，下面是本店目前订单数量及状态（系统自动刷新），您也可以手动上拉刷新更新数据查看实时排队情况~',//黄色横幅喇叭滚动内容(默认值)

      description: '无需排队即刻享用~',//当没有顾客下单时显示的空状态组件(一段简短的描述信息)
      descriptionBtn: '马上点餐',//当没有顾客下单时显示的空状态组件(按钮上的文字)
    }

    //++++++++++++++++++++ END +++++++++++++++++++

  },



  





     //++++++++++++++++++++ 简易事件处理 +++++++++++++++++++

     /**
      * 空状态-点餐按钮(无订单时显示的组件)
      * 功能:跳转到点餐页面
      * @return void
      */
     toMenuPage: function()
     {
      wx.switchTab({
        url:'/pages/menu/homePage/homePage'
      })
     },

     //++++++++++++++++++++ END +++++++++++++++++++++








    //+++++++++++++ 动画库 +++++++++++++

    /**
     * 数字跳动(当前排队人数)
     * 动画名:ani
     * @return void
     */
    beat: function()
    {
      // 创建动画实例
      var animation = wx.createAnimation({
        duration: 200,//动画持续时间
        timingFunction: 'ease-in',//动画以低速开始
      })

      // 描述动画
      animation.translateX(10).rotate(25).step()
      animation.translateX(-10).rotate(-25).step()
      animation.translateX(0).rotate(0).step()

      // 导出(ani)
      this.setData({
        ani: animation.export()
      })
    },

    //++++++++++++++++++++ END +++++++++++++++++++








  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options)
  {

    /**
     * 请求网络字体
     */
    wx.loadFontFace({
      family: 'blod',
      source: 'url("https://static.heytea.com/taro_trial/v1/font/WenYue-XinQingNianTi-NC-W8_1.otf")'
    })



    /**
     * 请求用户自定义配置字段
     * @return void
     */
    console.log('请求接口：用户自定义配置字段')



    






    /**
     * 等待人数数字摆动(请求数据结束后跳动)
     */
    this.beat();


  },




  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function()
  {

  },



  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function()
  {



    /**
     * 防止用户拿不到最新数据(因为页面切换会重新计时)
     * 无条件请求一次最新数据
     */
    
     // 请求服务器最新数据
    console.log('请求接口：刷新客户列表状态(无条件执行)')

      // 反馈提示
      wx.showToast({
        title: '数据已更新！'
      })





    /**
     * 每隔一段时间请求服务器刷新数据(客户状态)
     * 当页面显示时开启定时器(开启实时刷新)
     * 每隔30秒请求刷新一次
     * @注意：用户切换后页面会重新计时
     */
    this.data.realTime = setInterval(function()
    {
      
      // 请求服务器数据
      console.log('请求接口：刷新客户列表状态')

      // 计算当前等待人数(数组长度-1)
      // ...
      
      // 反馈提示
      wx.showToast({
        title: '数据已更新！'
      })

    }, 30000)

    // 更新数据
    this.setData({
      realTime:this.data.realTime,//实时数据对象(用于关闭实时刷新方法)

    })





    /**
     * 等待人数数字摆动(请求数据结束后跳动)
     */
    this.beat();
  },







  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function()
  {

    /**
     * 当页面隐藏时关闭定时器(关闭实时刷新)
     */
    clearInterval(this.data.realTime)

  },








  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function()
  {
    
  },








  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function()
  {

    /**
     * 下拉刷新(更新订单数量)
     */
    console.log('用户下拉刷新：更新订单数量及状态')

    // 反馈提示
    wx.showToast({
      title:'数据已更新！'
    })

    // 停止刷新显示
    wx.stopPullDownRefresh()

    /**
     * 等待人数数字摆动(请求数据结束后跳动)
     */
    this.beat();
  },








  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function()
  {

    /**
     * 当有排队顾客时提示(无订单则不提示)
     * @return void
     */
    
    // 没有顾客
     if(this.data.customer == 0)
    {
      return false
    }

    // 有顾客
    else
    {
      wx.showToast({
        title:'到底啦~',
        icon:'none'
      })
    }

  },







  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function()
  {

  }

})